package br.com.diego.system.controller.consultausuario;

import br.com.diego.system.controller.cadastrousuario.UsuarioVo;
import br.com.diego.system.entity.usuario.Usuario;
import br.com.diego.system.manager.usuario.UsuarioManager;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;

public class ConsultaUsuarioBuilder {

    @Autowired
    private ConsultaUsuarioFactory consultaUsuarioFactory;
    
    @Autowired
    private UsuarioManager usuarioManager;

    public UsuarioVo retornar(UsuarioVo usuarioVo) {
        Usuario usuario = new Usuario();
        usuario = usuarioManager.buscarPeloId(usuarioVo.getId());
        if (usuario != null) {
            UsuarioVo vo = new UsuarioVo(usuario);
            return vo;
        }
        return null;
    }

    public List<UsuarioVo> consultar(ConsultaUsuarioVo consultaUsuarioVo) {
        if (consultaUsuarioVo.getTipoConsultaVo() == TipoConsultaVo.ID) {
            Assert.hasText(consultaUsuarioVo.getFiltro(), "Filtro não informado!");
        }
        return consultaUsuarioFactory.consultar(consultaUsuarioVo);
    }
}
